package com.gshrms.recruitment.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gshrms.common.core.domain.AjaxResult;
import com.gshrms.common.core.domain.entity.SysDictData;
import com.gshrms.recruitment.entity.RecruitmentApplicants;
import com.gshrms.recruitment.entity.RecruitmentInfoPosition;
import com.gshrms.recruitment.entity.RecruitmentInterview;
import com.gshrms.recruitment.entity.RecruitmentStrict;
import com.gshrms.recruitment.entity.param.RecruitmentFeedbackParam;
import com.gshrms.recruitment.entity.param.RecruitmentReportParam;
import com.gshrms.setting.domain.StaffInfoField;
import com.gshrms.setting.domain.StaffInfoTable;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 应聘者信息表 Mapper 接口
 * </p>
 *
 * @author xj
 * @since 2025-03-31
 */
@Mapper
public interface RecruitmentApplicantsMapper extends BaseMapper<RecruitmentApplicants> {

    List<RecruitmentInfoPosition> vacancy();

    Integer notReadNum(@Param("userId") Long userId);

    List<RecruitmentInterview> myApplication(@Param("userId") Long userId);

    List<RecruitmentStrict> strictRequirement(@Param("positionId") String positionId);

    List<SysDictData> selectDictDataByType();

    List<StaffInfoTable> selectTable();

    List<StaffInfoField> selectField(@Param("tableId") Long tableId);

    Integer feedback(@Param("param") RecruitmentFeedbackParam param);

    Integer uploadReport(@Param("param") RecruitmentReportParam param);

    RecruitmentInfoPosition selectRecruitmentInfoPositionById(@Param("positionId") String positionId);

    List<String> myVacancy(@Param("userId") Long userId);

    Integer updateReadState(@Param("userId") Long userId);

    Integer isRepeat(@Param("userId") Long userId);

    Integer delReport(@Param("applicantId") String applicantId);
}
